//
// Created by Jisam on 30/08/2024 7:52 PM.
// Solution of   P3131 [USACO16JAN]Subsequences Summing to Sevens
// 2024-08-30 20:10:04 AC100
//#pragma GCC optimize(3)
#include <bits/stdc++.h>

using namespace std;
#define endl "\n"
#define PSI pair<string,int>
#define PII pair<int,int>
#define PDI pair<double,int>
#define PDD pair<double,double>
#define VVI vector<vector<int>>
#define VI vector<int>
#define VS vector<string>
#define read(a) for(auto &x : a){cin >> x;}
#define PQLI priority_queue<int, vector<int>, less<int>>
#define PQGI priority_queue<int, vector<int>, greater<int>>
#define code_by_jisam ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr)
typedef long long i64;
typedef unsigned u32;
typedef unsigned long long u64;
typedef __int128 i128;
int dx[] = {-1, 1, 0, 0, 1, 1, -1, -1,};
int dy[] = {0, 0, -1, 1, 1, -1, -1, 1,};

// 定义最大数组长度常量，确保足够存储1e7个元素外加5个额外空间
const int MAXN =  1e7 + 5;
// pre数组用于存储从1到n的累加和，对7取模的结果
int pre[MAXN];
// first数组用于记录每种模7结果首次出现的位置
int first[7],last[7];
/**
 * solution函数实现了解决特定问题的算法
 * 问题描述：给定一个长度为n的整数序列，找到一个子序列，使得该子序列的和能被7整除，且长度最长
 * 无参数输入，直接通过标准输入读取n和整数序列
 * 通过标准输出直接输出结果：满足条件的最长子序列的长度
 */
void solution() {
    int n;
    cin>> n;
    // 初始化累加和数组，记录从1到i的累加和对7取模的结果
    for(int i = 1; i <= n ; i ++){
        cin >> pre[i];
        pre[i] = (pre[i] + pre[i - 1]) %7;
    }
    // 从后向前遍历，更新first数组，确保每个模7结果记录的是首次出现的位置
    for(int i = n; i >= 1; i --){
        first[pre[i]]  = i;
    }
    // 特殊情况处理：如果模7结果在序列开始前出现（即为0），则其首次出现位置为0
    first[0]=0;
    // 遍历序列，更新last数组，记录每个模7结果最后一次出现的位置
    for(int i = 1; i <= n; i ++){
        last[pre[i]] = i;
    }
    // 初始化最长子序列长度变量
    int mx = 0;
    // 遍历所有模7结果，计算并更新最长子序列长度
    for(int i = 0 ; i <= 6; i ++){
        mx = max(last[i] - first[i],mx);
    }
    // 输出最长子序列的长度
    cout <<mx <<endl;
}

int main() {
    code_by_jisam;
    int T = 1;
//    cin >> T;
    while (T--) {
        solution();
    }
    return 0;
}